package estructuras.common;


public class Paquete implements Comparable<Paquete>{
	Almacen origen, destino;
	Fecha fechaRegistro, fechaLimiteEntrega;
	Ruta ruta;
	boolean esFijo;
	
	public Ruta getRuta() {
		return ruta;
	}

	public void setRuta(Ruta ruta) {
		this.ruta = ruta;
	}

	public Paquete(Almacen origen, Almacen destino, Fecha fechaRegistro,
			Fecha fechaLimiteEntrega, boolean esFijo) {
		this.origen = origen;
		this.destino = destino;
		this.fechaLimiteEntrega = fechaLimiteEntrega;
		this.fechaRegistro = fechaRegistro;
		this.esFijo = esFijo;
	}

	public Paquete(Almacen origen, Almacen destino, Fecha fechaRegistro, boolean esFijo){
		this(origen, destino, fechaRegistro, getFechaFin(origen, destino, fechaRegistro), esFijo);
	}
	public static Fecha getFechaFin(Almacen origen, Almacen destino, Fecha fechaRegistro){
		if(origen == null || destino == null) return fechaRegistro;
		if(origen.continente == destino.continente) 
			return Fecha.nextDias(fechaRegistro, 1);
		else return Fecha.nextDias(fechaRegistro, 2);
	}
	public Fecha getFechaRegistro() {
		return fechaRegistro;
	}

	public Almacen getOrigen() {
		return origen;
	}

	@Override
	public int compareTo(Paquete otro) {
		return this.fechaRegistro.compareTo(otro.fechaRegistro);
	}

	public Almacen getDestino() {
		return this.destino;
	}

	
}
